package pe.com.bn.sach.service;


import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import pe.com.bn.sach.domain.Bnchf01Persona;
import pe.com.bn.sach.domain.Bnchf02Cliente;
import pe.com.bn.sach.domain.Bnchf05Observaciones;
import pe.com.bn.sach.domain.Bnchf13Expediente;
import pe.com.bn.sach.domain.Bnchf23ExpDetFamAdic;
import pe.com.bn.sach.domain.Bnchf23ExpDetTitAdic;
import pe.com.bn.sach.domain.Bnchf23ExpFamCtaPeriodo;
import pe.com.bn.sach.domain.Bnchf23ExpFamCuentas;
import pe.com.bn.sach.domain.Bnchf23ExpIngrFamAdic;
import pe.com.bn.sach.domain.Bnchf23ExpIngrTitAdic;
import pe.com.bn.sach.domain.Bnchf23ExpIngresoFamiliar;
import pe.com.bn.sach.domain.Bnchf23ExpIngresoTitular;
import pe.com.bn.sach.domain.Bnchf23ExpTitCtaPeriodo;
import pe.com.bn.sach.domain.Bnchf23ExpTitCuentas;
import pe.com.bn.sach.domain.Bnchf33PrestamoExpediente;

import pe.com.bn.sach.domain.Bnchf41UnidadProc;
import pe.com.bn.sach.domain.Bnchf42Actividad;
import pe.com.bn.sach.domain.Bnchf54ParametroProducto;
import pe.com.bn.sach.domain.Bnchf67DireccionPers;
import pe.com.bn.sach.domain.Bnchf68UsrAdmAgenc;
import pe.com.bn.sach.domain.BnchfReporte;




import pe.com.bn.sach.expediente.form.CuentaForm;
import pe.com.bn.sach.seguridad.DatosSesion;

public interface ExpedienteService {
	
	
	
	
	public String ActualizarEstadoCivil(Long idCliente,String usuario,String idExpediente) throws Exception;
	
	public 	String verificarProducto(Map map);
	public List  getFechas()throws Exception;
	public String constanteServicioHipotecario() throws Exception;
	public Bnchf33PrestamoExpediente getDatosCabeceraPrecalificacion(String idExpediente)throws Exception;
	public void enviaCorreoBajaExpediente(Bnchf05Observaciones bnchf05Observaciones,String idExpediente,DatosSesion datosSesion,Long idMensaje) throws Exception;
	public List listExpediente(Bnchf13Expediente bnchf13Expediente) throws Exception;
	public List buscaCuenta(CuentaForm cuentaForm,Connection cnx)throws Exception;
	public Bnchf13Expediente datoBasicosExpediente(Bnchf13Expediente bnchf13Expediente) throws Exception,SQLException;
	public Bnchf13Expediente datosComplExpediente(Bnchf13Expediente bnchf13Expediente) throws Exception,SQLException;
	public String verificaConyugeActivo(Bnchf13Expediente Bnchf13Expediente) throws Exception;
	public String RegistrarExpediente (
			Bnchf13Expediente bnchf13Expediente,
			Bnchf23ExpIngresoTitular bnchf23ExpIngresoTitular,
			List bnchf23ExpTitCuentasList, 
			List bnchf23ExpIngrTitAdicList,
			List abonoFormList,
			List otrosIngresosFormList,
			String servicio,
			String agencia ,Bnchf67DireccionPers bnchf67DireccionPers) throws Exception,SQLException;
	
	public String ModificarExpediente(
			Bnchf13Expediente bnchf13Expediente,
			Bnchf23ExpIngresoTitular bnchf23ExpIngresoTitular,			
			List cuentaFormList,
			List bnchf23ExpIngrTitAdicList,
			List abonoFormList,
			List otrosIngresosFormList,			
			String servicio,
			String agencia,
			Bnchf67DireccionPers bnchf67DireccionPers
			) throws Exception,SQLException;
			 
			
	
	
	public void TerminarExpediente(Bnchf13Expediente bnchf13Expediente)throws Exception;
		
		
	// public String BajarExpediente(Bnchf13Expediente bnchf13Expediente,Bnchf05Observaciones bnchf05Observaciones)throws Exception;
	public String BajarExpediente(String f13IdExpediente,Bnchf05Observaciones bnchf05Observaciones,DatosSesion datosSesion,Long idMensanje)throws Exception;
	
	public Bnchf13Expediente EncontrarExpediente(Bnchf13Expediente bnchf13Expediente)throws Exception;
	public Bnchf02Cliente FindPopupCliente(Bnchf02Cliente Bnchf02Cliente)throws Exception;
	public Bnchf02Cliente FindConyugue(Bnchf02Cliente Bnchf02Cliente)throws Exception;	
	public List listProducto() throws Exception;
	
	//datos del conyuge
	public Bnchf02Cliente getFindPopupPersona(Bnchf02Cliente Bnchf02Cliente)throws Exception;
	
	
     
	//	public void actualizarInmueble(Bnchf35Inmueble bnchf35Inmueble,Bnchf36ExpVendedor bnchf36ExpVendedor)throws Exception;
	/*
	public Bnchf35Inmueble encontrarInmueble(Bnchf35Inmueble bnchf35Inmueble)throws Exception;
	public String guardarInmueble(Bnchf35Inmueble bnchf35Inmueble,Bnchf36ExpVendedor bnchf36ExpVendedor)throws Exception;
	public void bajarInmueble(Bnchf35Inmueble  bnchf35Inmueble,Bnchf36ExpVendedor bnchf36ExpVendedor)throws Exception;
	public Bnchf36ExpVendedor EncontrarExpVendedor(Bnchf36ExpVendedor  bnchf36ExpVendedor)throws Exception;
	*/
	// 
	public List cuentaFormList(Bnchf23ExpTitCuentas bnchf23ExpTitCuentas) throws Exception;
	public List otrosIngresosFormList(Bnchf23ExpDetTitAdic bnchf23ExpDetTitAdic) throws Exception;
	public List optenerBnchf23ExpIngrTitAdicList( Bnchf23ExpIngrTitAdic	bnchf23ExpIngrTitAdic) throws Exception;
	public List abonosList(Bnchf23ExpTitCtaPeriodo bnchf23ExpTitCtaPeriodo) throws Exception;
	//verifica si recibe sueldo en bn
	
	public String VerificasiExisteCampo(Bnchf23ExpFamCuentas Bnchf23ExpFamCuentas,Long idPersonaCony) throws Exception;
	
	/// ingresos del familiar	
	public Bnchf23ExpIngresoFamiliar ExpIngresoFamiliar(Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar)throws Exception;
	public List ExpIngrFamAdicList(Bnchf23ExpIngrFamAdic bnchf23ExpIngrFamAdic)throws Exception;
	public List cuentaFormListFam(Bnchf23ExpFamCuentas bnchf23ExpFamCuentas) throws Exception;
	public List otrosIngresosFormListFam(Bnchf23ExpDetFamAdic bnchf23ExpDetFamAdic) throws Exception;	
	public List abonosListFam(Bnchf23ExpFamCtaPeriodo bnchf23ExpFamCtaPeriodo) throws Exception;
	
///public List buscaCuenta(CuentaForm cuentaForm,Connection cnx)throws Exception
	public List buscaCuentaxDni(CuentaForm cuentaForm,Connection cnx)throws Exception;
	
	public String ActualizarIngresosDelFamiliar(			
			Bnchf13Expediente bnchf13Expediente,
			Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar,			
			List cuentaFormList,
			List bnchf23ExpIngrFamAdicList,
			List abonoFormList,
			List otrosIngresosFormList,			
			String servicio, 
			String agencia,
			Bnchf67DireccionPers bnchf67DireccionPers,
			String resibeSueldoBn 
	)
			throws Exception;

	public Bnchf23ExpIngresoFamiliar  EncontrarDatosExpIngresoFamiliar(Bnchf23ExpIngresoFamiliar bnchf23ExpIngresoFamiliar)throws Exception;	
	
	
	public List bnchf54ParametroProductoList( Bnchf54ParametroProducto	bnchf54ParametroProducto) throws Exception;
	
	/* BDUC */
	public List listaCuentaCentroDTrabajo(CuentaForm cuentaForm,Connection cnx)throws Exception;
	public CuentaForm EncontrarCuentaCentroDTrabajo(CuentaForm cuentaForm,Connection cnx)throws Exception;
	public Bnchf54ParametroProducto encontrarParametroProducto( Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception;	
	//sdfasdf
	public Bnchf67DireccionPers encontrarDirecionPersona(Bnchf67DireccionPers Bnchf67DireccionPers)throws Exception;
	public String verificarClienteFamiliar(Long idCliente) throws Exception;



	public List bnchf41UnidadProcList(Bnchf41UnidadProc  bnchf41UnidadProcList) throws Exception;
	public List bnchf42ActividadList( Bnchf42Actividad	bnchf42Actividad) throws Exception;
	
	public List listObservaciones(Bnchf05Observaciones bnchf05Observaciones) throws Exception;

	public List ListUnidadProcFlujo(Bnchf41UnidadProc  bnchf41UnidadProcList) throws Exception;
	
	
	public Bnchf13Expediente datosExpediente(String idExpediente) throws Exception,SQLException;
	
	//lista de rorels
	public List  listaRoles(Bnchf68UsrAdmAgenc bnchf68UsrAdmAgenc)throws Exception;
	 
	public String ValidaIngresosBajaExpediente(List idRol ,Bnchf13Expediente bnchf13Expediente)throws Exception;
	public String ValidaIngresosMantenimientoInmueble(List idRol ,Bnchf13Expediente bnchf13Expediente)throws Exception;
	public String ValidaIngresosIngresoTitular(List idRol ,Bnchf13Expediente bnchf13Expediente)throws Exception;
	public String ValidaIngresosIngresoFamiliar(List idRol ,Bnchf13Expediente bnchf13Expediente)throws Exception;
	public String encontrarClienteEnExpediente (Long IdCliente) throws Exception;
	public List ListaParamReqsTit() throws Exception;
	
	public String encontrarFamiliaresClienteEnExpediente (Long IPersonaFamiliar ) throws Exception;
	
	public String getIdConyuge(Long IdCliente) throws Exception;
	
	public List reporteEstado(BnchfReporte bnchfReporte) throws Exception;
	
}